x86-64: use 1GB pages in 1:1 mapping if available
authorKeir Fraser <keir.fraser@citrix.com>
Mon, 28 Jan 2008 10:17:05 +0000 (10:17 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Mon, 28 Jan 2008 10:17:05 +0000 (10:17 +0000)
commit4376c05c311320beb528213b1ae3bb0371e2b6c8
tree8fd2d827ff973c65cea66413309a82afb164acd6
parentb124770528e333fcb4efb408d7bbf931ccef3b6e
x86-64: use 1GB pages in 1:1 mapping if available

At once adjust the 2/4Mb page handling slightly in a few places (to
match the newly added code):
- when re-creating a large page mapping after finding that all small
  page mappings in the respective area are using identical flags and
  suitable MFNs, the virtual address was already incremented pas the
  area to be dealt with, which needs to be accounted for in the
  invocation of flush_area() in that path
- don't or-in/and-out _PAGE_PSE on non-present pages
- when comparing flags, try minimse the number of l1f_to_lNf()/
  lNf_to_l1f() instances used
- instead of skipping a single page when encountering a big page
  mapping equalling to what a small page mapping would establish, skip
  to the next larger page boundary

Signed-off-by: Jan Beulich <jbeulich@novell.com>
xen/arch/x86/mm.c
xen/arch/x86/setup.c
xen/arch/x86/x86_64/mm.c
xen/arch/x86/x86_64/traps.c
xen/include/asm-x86/page.h